// 合同接口
export interface Contract {
  id: number
  name: string
  code: string
  customer: string
  types: number
  cate_id: number
  did: number
  sign_uid: number
  sign_time: string
  start_time: string
  end_time: string
  keeper_uid: number
  prepared_uid: number
  share_ids: string
  file_ids: string
  amount: number
  content: string
  check_status: number
  archive_status: number
  stop_status: number
  void_status: number
  admin_id: number
  create_time: string
  update_time: string
  delete_time: number
  remark: string // 合同备注
  // 添加额外的显示字段
  types_name?: string
  status_name?: string
  cate_title?: string
  sign_name?: string
  interval_time?: string
  delay?: number
  keeper_name?: string
  archive_name?: string
  archive_time?: string
  stop_name?: string
  stop_time?: string
  void_name?: string
  void_time?: string
}

/**
 * 合同数据项接口（用于表格显示）
 */
export interface ContractItem {
  id: number
  code: string
  name: string
  customer: string
  customer_name?: string
  types: number
  cate_id: number
  cate_name: string
  cost: number
  cost2: number | string // 到账金额
  cost3: string // 后期费用，直接显示字符串
  sign_uid: number // 签约人ID
  sign_name: string // 签约人名称
  sign_time: number // 签约时间戳（秒级）
  sign_time_formatted: string // 格式化后的签约时间
  end_time: number // 到期时间戳（秒级）
  end_time_formatted: string // 格式化后的到期时间
  interval_time?: string // 合同期间（可选）
  delay: number // 剩余天数
  archive_status: number
  stop_status: number
  void_status: number
  is_cleared: boolean // 款项是否结清
  has_cost3: boolean // 是否有后期费用
  status?: number // 合同状态（用于作废合同列表）
  void_time_formatted?: string // 作废时间（用于作废合同列表）
  void_user?: string // 作废人（用于作废合同列表）
  [key: string]: any
}

// 合同分类接口
export interface ContractCategory {
  id: number
  title: string
  pid: number
  sort: number
  status: number
  create_time: string
  update_time: string
}

// API响应类型
export interface ApiResponse<T> {
  code: number
  msg: string
  data: T
  count?: number
}

// 合同列表参数接口
export interface ContractListParams {
  page: number
  limit: number
  cate_id?: string | number
  check_status?: string | number
  cost_diff?: string | number
  cost3?: string | number
  keywords?: string
  sign_time_start?: string
  sign_time_end?: string
  end_time_start?: string
  end_time_end?: string
  archive_status?: number
  stop_status?: number
  void_status?: number
}
